program dziennik;

uses crt, sysutils, OdczytZapis, ListaUczniow, ListaOcen, ListaUwag,
ListaPrzedmiotow, Narzedzia, interfejs;

{---------------------------------}
{ Program glowny                  }
{---------------------------------}

var
   { nasza glowna lista uczniow }
   lista_uczniow : wuczen;

   { char do sterowania menu }
   wybor : char;

   {sciezka z ktorej program sie uruchomil }
   sciezka : string;

   { absolutna scieka do pliku birnaego }
   plik_uczniow : string;


begin
  lista_uczniow := nil;

  { sciezka z ktorej program sie uruchomil }
  sciezka := GetCurrentDir;

  { sciezka + plik czyli absolutna sciezka do pliku }
  plik_uczniow := sciezka + '\' + PLIK;

  {
    wczytuje z pliku binarnego rekordy do listy uczniow oraz wszystkie informaje
    o ocenach i przedmiotach
  }
  wczytaj(lista_uczniow, plik_uczniow);

  { tworzymy okna tj menu, separtor, glownego okno}
  stworz_okna;
  repeat
        repeat
        wybor := ReadKey;
        wybor := UpCase(wybor); //zmienia mala literke na duza, nie odwrotnie

        until wybor in ['D','W', 'L' ,'U', ']','[','/','\', 'O', 'C'];
        case wybor of

        { zapisujemy po kazdym wywolaniu okna nowo dodane informacje }
        'D': begin okno_dodaj_ucznia(lista_uczniow);    zapisz(lista_uczniow, plik_uczniow);            end;
        'W': begin okno_uczniow_i_ocen(lista_uczniow);                                                  end;

        'L': begin okno_uwag(lista_uczniow);                                                            end;
        'U': begin okno_dodaj_uwage(lista_uczniow);     zapisz(lista_uczniow, plik_uczniow);            end;

        ']': begin okno_usun_przedmiot(lista_uczniow);  zapisz(lista_uczniow, plik_uczniow);            end;
        '[': begin okno_dodaj_przedmiot(lista_uczniow); zapisz(lista_uczniow, plik_uczniow);            end;

        '/': begin okno_dodaj_ocene(lista_uczniow);     zapisz(lista_uczniow, plik_uczniow);            end;
        '\': begin okno_usun_oceny(lista_uczniow);      zapisz(lista_uczniow, plik_uczniow);            end;

        'O': begin okno_usun_ucznia(lista_uczniow);     zapisz(lista_uczniow, plik_uczniow);            end;
        end;

  until wybor = 'C';

{ usuwamy liste z pamieci wraz z wszystkimi podlistami }
 usun_uczniow(lista_uczniow);
end.


